#ifndef _MEDIA_MEMORY_H_
#define _MEDIA_MEMORY_H_

#include "typedef.h"

enum audio_module {
    AUD_MODULE_DEFAULT = 0,
    //Effects Modules
    AUD_MODULE_ECHO,
    AUD_MODULE_REVERB,
    AUD_MODULE_REVERB_V2,
    AUD_MODULE_AUTOTUNE,
    AUD_MODULE_AUTOWAH,
    AUD_MODULE_CHORUS,
    AUD_MODULE_FREQ_SHIFT,
    AUD_MODULE_HARMONIC_EXCITER,
    AUD_MODULE_LLNS,
    AUD_MODULE_NOISEGATE,
    AUD_MODULE_HOWLING_GATE,
    AUD_MODULE_NOTCH_HOWLING,
    AUD_MODULE_PCM_DELAY,
    AUD_MODULE_PINGPONG,
    AUD_MODULE_PITCH,
    AUD_MODULE_PITCH_SPEED,
    AUD_MODULE_MTAPS_ECHO,
    AUD_MODULE_STEREO_WIDENER,
    AUD_MODULE_THREE_D,
    AUD_MODULE_SURROUND,
    AUD_MODULE_VBASS,
    AUD_MODULE_VOICE_CHANGER,
    AUD_MODULE_DRC,
    AUD_MODULE_DRC_ADV,
    AUD_MODULE_DYN_EQ,
    AUD_MODULE_DISTORTION,
    AUD_MODULE_NOISEGATE_PRO,
    AUD_MODULE_LIMITER,
    AUD_MODULE_REVERB_LITE,
    AUD_MODULE_VIRTUAL_SURROUND_PRO,
    AUD_MODULE_VIRTUAL_SURROUND_PRO_TMP,
    AUD_MODULE_SOFWARE_EQ,
    AUD_MODULE_SOFWARE_EQ_COEFF,
    AUD_MODULE_SOFWARE_EQ_SEG,
    AUD_MODULE_VIRTUAL_BASS_CLASSIC,
    //Codec Modules
    AUD_MODULE_AAC,
    AUD_MODULE_AAC_ENERGY,
};

void *media_malloc(enum audio_module module, size_t size);
void media_free(void *pv);

#endif
